#include "HashTest.h"
#include "ArbolTest.h"
#include "testArbol.h"
#include "idxTest.h"
#include "testTerminosPorOrdenDeAparicion.h"
#include "testPosRelativas.h"
#include "testTermDocPos.h"
#include "testRTT.h"

#include <iostream>
using namespace std;

int main (int argc, char* argv[])
{	

	try
	{
            
                cout << "\n------------------------------------------------"; 
                cout << "\nTests de Hash" << endl;
                bool reescribirArchivo = true; // ponerlo en true para borrar el archivo y crear uno nuevo
                testEnteros(reescribirArchivo);
                testCadenas(reescribirArchivo);
                test2Cadenas(reescribirArchivo);

                testDatoString();

                cout << "\n------------------------------------------------"; 
                cout << "\nTests de Arbol" << endl;
				testPartirIndice1();
				testPartirDatos1();
				testPartirIndice2();
				testPartirDatos2();
				testSerializarYDesserializarNodoDatos();
				testSerializarYDesserializarNodoIndice();
				testBalancearNodoDatosConIzquierdo();
				testBalancearNodoDatosConDerecho();
				testFusionarNodoDatosConIzquierdo();
				testFusionarNodoDatosConDerecho();
				testBalancearNodoIndiceConIzquierdo();
				testBalancearNodoIndiceConDerecho();
				testFusionarNodoIndiceConIzquierdo();
				testFusionarNodoIndiceConDerecho();
				testInsertarArbol();				
				testInsertarYQueNoSePueda();
				testBuscarInsertados();
				testInsertarYQueNoSePueda();
				testModificarRegistro();
				testModificarRegistroYQueNoSePueda();
				testBorrar();
				testBorrarYQueNoSePueda();
				testNoPuedeBalancearDatosConIzquierdo();
				testNoPuedeBalancearDatosConDerecho();
				testNoPuedeBalancearIndiceConIzquierdo();
				testNoPuedeBalancearIndiceConDerecho();
				


                cout << "\n------------------------------------------------"; 
                cout << "\nTests de Indice / Masterfile" << endl << endl;
                testMFSerializacion();
                testIndexarSec(true);
                testIndexarMF(true);
                testMFdeArch();
                testNormalizarFrases();

                cout << "\n------------------------------------------------"; 
                testTPOA();
                testPosRel();
                testTDP();
                testsOrdenamiento();
                cout << "\n------------------------------------------------\n"; 

	}
	catch(exception &e)
	{
		cout << "Error: " << e.what() << endl;
	}
	return 0;


}
